#include <stdio.h>
#include <unistd.h>
#include <sys/mman.h>
#include <fcntl.h>

int main(int argc, char **argv)
{
	int fd;
	unsigned long *addr;

	fd = open("/dev/mem", O_RDWR);

	// 0x34000000 即/dev/mem的偏移，也就是保留内存在物理地址空间的偏移，我的例子就是0x34000000
	addr = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x34000000);
	// ... 随意使用保留内存
	close(fd);
	munmap(addr, 4096);

	return 1;
}
